package com.atguigu.gulimall.cart.feign;

import com.atguigu.common.utils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@FeignClient("gulimall-product")
public interface ProductFeignService {

    /**
     * 根据skuId，获取某一个商品的价格
     */
    @GetMapping("/product/skuinfo/{skuId}/price")
    public BigDecimal getPriceBySkuId(@PathVariable("skuId") Long skuId);

    /**
     * 根据skuIds，查询当前所有商品的价格
     */
    @GetMapping("/product/skuinfo/skuIds/price")
    public Map<Long, BigDecimal> getPriceBySkuIds(@RequestParam("skuIds") List<Long> skuIds);

    /**
     * 根据skuId获取商品信息
     *
     * @param skuId
     * @return
     */
    @RequestMapping("/product/skuinfo/info/{skuId}")
    public R getSkuInfo(@PathVariable("skuId") Long skuId);

    /**
     * 根据skuId获取当前商品的所有销售属性
     *
     * @param skuId
     * @return
     */
    @GetMapping("/product/skusaleattrvalue/stringlist/{skuId}")
    public List<String> getSkuSaleAttrValues(@PathVariable("skuId") Long skuId);


}
